#ifndef _CENTROID_H
#define _CENTROID_H

#include "idft.h"

#include <list>
#include <atlstr.h>

// o colectie de desriptori fourier reprezentati prin media lor
class Centroid
{
public:
	FourierSerie	serie;
	unsigned int	size;
	CString			label;

	Centroid();
	virtual ~Centroid();

	// distanta de la un centroid la un fourier descriptor
	unsigned int operator-(const FourierSerie&);

	// adaugarea unui fourier descriptor la un centroid
	Centroid& operator<<(const FourierSerie&);
};

// distanta intre doi descriptori fourier
unsigned int operator-(const FourierSerie&, const FourierSerie&);

typedef std::list<Centroid> CentroidList;

// cautam un centroid dupa nume
bool centroid_search(CentroidList&, const wchar_t*, Centroid**);

// cautam centroidul cel mai apropiat si returnam si distanta pana la el
unsigned int centroid_search(CentroidList&, const FourierSerie&, Centroid**);

#endif // _CENTROID_H